home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_1 / dfqbx26.zip / DFRAMEX.DOC < prev    next >
Text File  |  1993-03-14  |  64KB  |  1,220 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                D O O R F R A M E
  17.                                   Version 2.6
  18.  
  19.                         A BBS Doors Development Library
  20.                           for the BASCOM 7.1 compiler
  21.  
  22.                              Copyright (c) 1990-93
  23.                                 by Ted Freeman
  24.                              All rights reserved.
  25.  
  26.  
  27.                                Support board is:
  28.  
  29.                                MicroNet PCBoard
  30.                        Node1: 615-690-0428 USR DS 16.8K
  31.  
  32.  
  33.  
  34. DOORFRAME v2.6 - Users Guide - Page i
  35.  
  36.  
  37.                                 C O N T E N T S
  38.                                =================
  39.  
  40.         Warranty ............................................ ii
  41.         Copyright notice .................................... ii
  42.         Distribution ........................................ ii
  43.         Description ......................................... ii
  44.         BOX.IT .............................................. 1
  45.         BACK.SPACE .......................................... 2
  46.         CLREOL .............................................. 2
  47.         CLRMOL .............................................. 2
  48.         CLRSOL .............................................. 2
  49.         CLRSCRN ............................................. 2
  50.         DE.LAY .............................................. 2
  51.         DETECT.ANSI ......................................... 2
  52.         DIS.PLAY ............................................ 3
  53.         ENTER ............................................... 4
  54.         EXIT.DOOR ........................................... 4
  55.         IN.PUT .............................................. 4
  56.         INITIALIZE .......................................... 5
  57.         LINES ............................................... 5
  58.         MAKE.BLT ............................................ 6
  59.         MAKE.BLT.CURRENT .................................... 6
  60.         MORE ................................................ 6
  61.         MUSIC ............................................... 6
  62.         OUT.PUT ............................................. 6
  63.         SEND ................................................ 7
  64.         SENDANSI ............................................ 7
  65.         SHOW.BLT ............................................ 7
  66.         COLOR TABLE ......................................... 8
  67.         CONFIGURATION FILE FORMAT ........................... 9
  68.         PCBOARD.SYS VARIABLES ............................... 10
  69.         USERS.SYS VARIABLES ................................. 12
  70.         DOOR.SYS VARIABLES .................................. 13
  71.         USERINFO.DAT VARIABLES .............................. 15
  72.         DORINFOx.DEF VARIABLES .............................. 15
  73.         CALLINFO.BBS VARIABLES .............................. 16
  74.         SFDOORS.DAT VARIABLES ............................... 18
  75.         CHAIN.TXT VARIABLES ................................. 20
  76.         MISCELLANEOUS NOTES ................................. 21
  77.  
  78.  
  79. DOORFRAME v2.6 - Users Guide - Page ii
  80.  
  81.  
  82.                                    Warranty
  83.  
  84.     This product is provided "as is" without warranty of any kind. The entire
  85.     risk as to the results and  performance of the program is assumed by you.
  86.     Futhermore, the  author does  not warrant, guarantee, or  make any  other
  87.     representations regarding  the use of,  or the  results of the use of the
  88.     program,  and you  rely on the  program and  results  solely at  your own
  89.     risk.  The author  cannot and  will not accept  responsibility for system
  90.     damage, loss of profit, or any other special, consequential or incidental 
  91.     damages  resulting  from  the  use  or  inability  to  use this  product.
  92.  
  93.                                    Copyright
  94.  
  95.     DOORFRAME Copyright (c) 1990-93 by  Ted Freeman  is being distributed as
  96.     Shareware. Under this concept you may use the  SHAREWARE  (unregistered)
  97.     version for a reasonable period of  time for evaluation  after which you
  98.     must either register your copy or discontinue  usage.
  99.  
  100.  
  101.                                  Distribution
  102.  
  103.     You  are encouraged to distribute DOORFRAME provided that all files
  104.     contained in the archive are distributed in their original and
  105.     unmodified state.
  106.  
  107.                                   Description
  108.     
  109.     DOORFRAME is a subroutine library for developing online BBS Doors for
  110.     systems that are compatible with PCBOARD.SYS, USERS.SYS, DOOR.SYS,
  111.     CALLINFO.BBS, USERINFO.DAT, SFDOORS.DAT, CHAIN.TXT, or DORINFOx.DEF for
  112.     interfacing to the BBS.
  113.     This version of DoorFrame was written for BASCOM (tm) 7.1 and is not
  114.     recommended for use with earlier versions of the compiler. DoorFrame also
  115.     utilizes some of the routines contained in Tom Hanlin's PBClone library.
  116.     The COM routines are handled by the QBSerial I/O library.
  117.     NOTE: A version of DoorFrame is also available for Quickbasic 4.x.
  118.  
  119.  
  120. DOORFRAME v2.6 - Users Guide - Page 1
  121.  
  122.  
  123.                               DOORFRAME ROUTINES
  124.                              ====================
  125.  
  126. NOTE: 
  127. Since the subroutines are DECLAREd in DFRAMEX.INC (you DID $INCLUDE: it didn't 
  128. you?) you should not use the CALL statement. Type the name of the subroutine 
  129. and list it's parameters (if any) without the enclosing parentheses.
  130. For example:
  131.  
  132.  DIS.PLAY MSG$, FG%, BG%, BLINK%, BELL%, XPOS%, YPOS%, NL%, CENTER%, CAPS% 
  133. ------------------------------------------------------------------------------
  134.  
  135. SUBROUTINE: 
  136. BOX.IT SROW%,SCOL%,EROW%,ECOL%,BTYPE%,BFG%,BBG%,FFG%,FBG%,FCHAR%,SHADOW%,TITLE$,HFG%,HBG%
  137. PARAMETERS: SROW%    - ROW the box is to start at. Valid numbers are 1 - 22.
  138.                        Accepts an INTEGER number or variable.
  139.             SCOL%    - COLUMN the box is to start at. Valid numbers are 1 - 79.
  140.                        Accepts an INTEGER number or variable.
  141.             EROW%    - ROW the box is to end at. Valid numbers are 2 - 23.
  142.                        Accepts an INTEGER number or variable.
  143.             ECOL%    - COLUMN the box is to end at. Valid numbers are 2 - 80.
  144.                        Accepts an INTEGER number or variable.
  145.             BTYPE%   - Type of border. Accepts an INTEGER number or variable.
  146.                          0 = No border (spaces all the way around).
  147.                          1 = Single line all the way around.
  148.                          2 = Double line all the way around.
  149.                          3 = Double line on sides, single on top and bottom.
  150.                          4 = Single line on sides, double on top and bottom.
  151.             BFG%     - Foreground color of the border. (See color table)
  152.                        Accepts an INTEGER number or variable.
  153.             BBG%     - Background color of the border. (See color table)
  154.                        Accepts an INTEGER number or variable.
  155.             FFG%     - Foreground color of the box fill characters.
  156.                        Accepts an INTEGER number or variable.
  157.             FBG%     - Background color of the box fill characters.
  158.                        Accepts an INTEGER number or variable.
  159.             FCHAR%   - ASCII number of the character to fill box with.
  160.                        EX: 32 = SPACE, 65 = A, 206 = ╬
  161.             SHADOW%  - 1 = Shadow, 0 = no Shadow. This will put a Shadow
  162.                        on the right and bottom edges of the box.
  163.             TITLE$   - Displays a title centered on the top border.
  164.                        Accepts a STRING variable or QUOTED TEXT.
  165.             HFG%     - Foreground color of TITLE$
  166.             HFG%     - Background color of TITLE$
  167.  
  168. DESCRIPTION: Draws a BOX with various style borders. The inside of the
  169.              BOX may be filled with any ASCII character you choose. The
  170.              upper left corner of the screen is ROW 1, COLUMN 1 and the
  171.              bottom right is ROW 23, COLUMN 80.
  172.  
  173.  
  174.  
  175.  
  176. DOORFRAME v2.6 - Users Guide - Page 2
  177.  
  178. SUBROUTINE: BACK.SPACE ROW%, COL%, NUM%
  179. PARAMETERS: ROW%, COL%, NUM%
  180. DESCRIPTION: Backspaces NUM% from the ROW% and COL% specified.
  181.  
  182. SUBROUTINE: CLREOL XPOS%, YPOS%, BGC%
  183. PARAMETERS: XPOS%, YPOS%, BGC%
  184. DESCRIPTION: Clears from the specified row and column to the end of that
  185.              line. The line is cleared in whatever color is specified in
  186.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  187.  
  188. SUBROUTINE: CLRMOL XPOS%, YPOS%, LENGTH%, BGC%
  189. PARAMETERS: XPOS%, YPOS%, LENGTH%, BGC%
  190. DESCRIPTION: Clears from the specified row and column for the number of
  191.              columns given in LENGTH%. The line is cleared in whatever
  192.              color is specified in the BGC% parameter.
  193.              NOTE: Does not work in non-ANSI.
  194.  
  195. SUBROUTINE: CLRSOL XPOS%, YPOS%, BGC%
  196. PARAMETERS: XPOS%, YPOS%, BGC%
  197. DESCRIPTION: Clears from the specified row and column to the start of that
  198.              line. The line is cleared in whatever color is specified in
  199.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  200.  
  201. SUBROUTINE: CLRSCRN
  202. PARAMETERS: BGC%
  203. DESCRIPTION: Clears both the LOCAL (if ON) and REMOTE displays in the back-
  204.              ground color of your choice. Range is 0 - 7. ANSI only.
  205.  
  206.  
  207. SUBROUTINE: DE.LAY SEC%
  208. PARAMETERS: SEC%, 1, 2, Etc.
  209. DESCRIPTION: Pauses your program for the number of seconds in SEC%. Accepts
  210.              INTEGER number or variable.
  211.  
  212. SUBROUTINE: DETECT.ANSI
  213. PARAMETERS: None
  214. DESCRIPTION: This routine will determine if the remote system has ANSI
  215.              capability. If the remote system is ANSI compatible, the
  216.              GRAPHICS% variable will be set equal to -1 otherwise it is
  217.              set to 0. This routine does not control whether COLOR is used
  218.              or not, see the MODE% variable for that.
  219.  
  220.  
  221.  
  222. DOORFRAME v2.6 - Users Guide - Page 3
  223.  
  224. SUBROUTINE: 
  225. DIS.PLAY MSG$,FG%,BG%,BLINK%,BELL%,XPOS%,YPOS%,NL%,CENTER%,CAPS%,CODES%
  226. PARAMETERS: MSG$     - Text to be printed in either variable or quoted form.
  227.                        Example: "Print this" or MSG$ = "Print this".
  228.             FG%      - Foreground color (0 - 15) Of the text. Can be in
  229.                        INTEGER number or INTEGER variable form. 
  230.                        Example: FG% = 1, 1, BLUE (See Color Table)
  231.             BG%      - Background color (0 - 7) of text otherwise same as FG%
  232.             BLINK%   - Enter 1 for blinking text or 0 for normal text.
  233.                        Accepts INTEGER number or INTEGER variable.
  234.             BELL%    - Enter 1 to sound a beep on the remote or 0 for no
  235.                        beep. Does not beep on the local computer.
  236.                        Accepts INTEGER number or INTEGER variable.
  237.             XPOS%    - Row number for cursor positioning. Valid numbers
  238.                        are 0 - 23 (status line is on 24 - 25). Enter 0 to
  239.                        disable. Accepts INTEGER number or variable.
  240.                        NOTE: XPOS% is ignored when GRAPHICS% = 0.
  241.             YPOS%    - Column number for cursor positioning. Valid numbers
  242.                        are 0 - 80. Enter 0 to disable. Accepts INTEGER number
  243.                        or INTEGER variable.
  244.                        NOTE: YPOS% is ignored when GRAPHICS% = 0.
  245.             NL%      - Enter 1 to send a CR/LF at the end of the line. Enter
  246.                        0 to position the cursor after the last character.
  247.                        Accepts INTEGER number or INTEGER variable.
  248.             CENTER%  - Enter 1 to center the line or 0 for no centering.
  249.             CAPS%    - Enter 1 to convert text to all uppercase.
  250.                        Enter -1 to convert text to all lowercase.
  251.                        Enter 0 for no case conversion.
  252.                        Accepts INTEGER number or INTEGER variable.
  253.             CODES%   - 0 = No color codes in this statement.
  254.                        1 = Color codes are present in this statement.
  255.  
  256. DESCRIPTION: Displays text to both the Local (if on) and Remote screens.
  257.              Accepts the full ASCII charcter set (0 - 255). Supports ANSI
  258.              color and cursor positioning (XPOS%, YPOS%). DoorFrame features
  259.              auto-ANSI detection and will display in graphics mode if it
  260.              senses ANSI capability on the remote end.
  261.  
  262. ENHANCEMENTS: There are some special symbols available to make text blink
  263.              in the middle of a line in any color you wish. For example:
  264.  
  265.              DIS.PLAY "This will %{Blink Yellow{", LWHITE, BLACK, 0, 0,......
  266.  
  267.              Note the {'s before and after Blink Yellow. They tell the routine
  268.              to display the text in between in yellow and blinks because 
  269.              of the % symbol. Without the % the text is displayed in yellow
  270.              but does not blink. The rest of the line is displayed in white
  271.              on black. The symbols and their corresponding colors are:
  272.                 ~ = Blue,  ` = Green,  @ = Cyan,  ^ = Red,  | = Magenta
  273.                 { = Yellow, and } = White 
  274.              Put a * in front of the first symbol to display in low intensity
  275.              colors. Ex: *}text} displays 'text' in low intensity white. And
  276.              %*}test} displays 'text' in low intensity white and blinks.
  277.  
  278. DOORFRAME v2.6 - Users Guide - Page 4
  279.  
  280.              Please note that you must have called DETECT.ANSI before using
  281.              these symbols and the caller must be ANSI capable. Multiple codes
  282.              are allowed in one Dis.Play statement. See the included
  283.              DFDEMO.BAS file for examples on using this option.
  284.              If a particular Dis.Play statement does not contain any of these
  285.              color codes, then the Codes% parameter should contain a 0. This
  286.              will result in a significant increase in display speed since the
  287.              routine doesn't have to search for and strip these characters.
  288.  
  289. SUBROUTINE: ENTER
  290. PARAMETERS: None
  291. DESCRIPTION: Outputs a "Press <ENTER> to Continue" prompt and waits for the
  292.              response. If the caller is in graphics mode, this is centered
  293.              on line 23. In non-graphics mode it is centered 2 lines below
  294.              the last line printed.
  295.  
  296.  
  297. SUBROUTINE: EXIT.DOOR YN$
  298. PARAMETERS: YN$, "Y", "N", "G"
  299. DESCRIPTION: VERY IMPORTANT! Always call this subroutine as the last thing
  300.              your program does. EXIT.DOOR updates the system files with any
  301.              changes that have been made to system variables, closes the
  302.              files, etc.
  303.  
  304.              You can toggle this ON, "Y" or OFF, "N" when you call EXIT.DOOR.
  305.              Accepts a STRING variable YN$ = "Y" or quoted text "Y".
  306.              If you wish to allow the caller to log off from your Door, call
  307.              EXIT.DOOR "G". When you use EXIT.DOOR "G", DoorFrame returns a
  308.              DOS Error Level of 1 for Wildcat! systems and 62 for all others.
  309.  
  310. SUBROUTINE: 
  311. IN.PUT LENGTH%, WAITTIME&, IFG%, IBG%, AUTOCR%, Text$, TFG%, TBG%, X%, Y%, Show%
  312.  
  313. PARAMETERS: LENGTH%   - Desired length of input. Accepts an INTEGER number
  314.                         or variable. 0 = any length.
  315.             WAITTIME& - Number of seconds to wait for input. If ENTER is not
  316.                         pressed before this times out, control is passed back
  317.                         to the calling routine and RESPONSE$ will contain "-1"
  318.             IFG%      - Foreground color of the response (INTEGER).
  319.             IBG%      - Background color of the response (INTEGER).
  320.             AUTOCR%   - 1 = Automatic CR, 0 = Wait for ENTER to be pressed.
  321.             Text$     - Text to display (if any). Use "" for no display.
  322.             TFG%      - Foreground color of Text$
  323.             BFG%      - Background color of Text$
  324.             X%        - X coordinate to display text. 0 = current coordinate.
  325.             Y%        - Y coordinate to display text. 0 = current coordinate.
  326.             Show%     - 0 = Don't display response, 1 = Display response.
  327.  
  328. DESCRIPTION: Gets a response from the caller which is returned in the variable
  329.              RESPONSE$. Passes ASCII characters in the range 32 - 127 and
  330.              ignores all others unless Hi.Ascii% = 1, in which case it accepts
  331.              ASCII 32 - 255. IN.PUT also allows you to use HOT KEYS! If you are
  332.              prompting for a Y/N you could do something like:
  333.              
  334.              IN.PUT 1, 180, 12, 0, 1, "Is everything correct? (y/n) ", 1, 1, 0
  335.              IF UCASE$(RESPONSE$) = "Y" THEN      Etc., Etc.
  336.  
  337.  
  338. DOORFRAME v2.6 - Users Guide - Page 5
  339.  
  340.              As soon as the caller hit Y or N, the subroutine terminates
  341.              without his having to hit ENTER (however IN.PUT always returns
  342.              when ENTER is pressed). The response would not be displayed.
  343.              The IN.PUT can also be used as a timed routine. In the example
  344.              above, The routine would wait for 180 seconds. if it does not
  345.              receive a keypress within that time, it returns to the calling
  346.              routine and RESPONSE$ would contain a "-1".
  347.              IN.PUT features word-wrap ability in both forward typing and
  348.              while backspacing.
  349.  
  350. SUBROUTINE: INITIALIZE
  351. PARAMETERS: None
  352. DESCRIPTION: VERY IMPORTANT! You MUST make a call to INITIALIZE before your
  353.              code does anything. This subroutine opens the system files and
  354.              obtains all the information you will need to run your Door. It
  355.              first reads the configuration file you passed on the command
  356.              line, then it reads the BBS interface file PCBOARD.SYS, etc.
  357.              There are 3 variables that must be populated before the call
  358.              to INITIALIZE. 
  359.                 PROGNAME$ = "Name of your Door"
  360.                 EXENAME$ = "FILENAM"
  361.                 VERSION$ = " v0.0"
  362.                 INITIALIZE
  363.              PROGNAME$ and VERSION$ are displayed on the Status line after
  364.              the callers name. EXENAME$ must be populated if you plan to use
  365.              the high score bulletin generator. EXENAME$ is the filename of
  366.              your program minus the .EXE extension.
  367.          ->  NOTE: EXENAME$ MUST BE NO MORE THAN 7 CHARACTERS!
  368.  
  369.  
  370. SUBROUTINE: LINES SROW%,SCOL%,LEN%,DIR$,ENDS%,MID%,EFG%,EBG%,MFG%,MBG%
  371. PARAMETERS: SROW%    - Row the line starts at. Valid numbers are 1 - 22.
  372.                        Accepts an INTEGER number or variable.
  373.             SCOL%    - Column the line starts at. Valid numbers are 1 - 79.
  374.                        Accepts an INTEGER number or variable.
  375.             LEN%     - Length of the line. Max. of 23 for vertical, 80 horiz.
  376.                        Accepts an INTEGER number or variable.
  377.             DIR$     - "H" = horizontal. "V" = vertical. Accepts a STRING
  378.                        variable or quoted text.
  379.             ENDS%    - If you are placing the line inside a box, you can
  380.                        make the ends of the line match the box border.
  381.                        Accepts an INTEGER number or variable.
  382.                          0 = No ends. (straight line only)
  383.                          1 = Single line.
  384.                          2 = Double line.
  385.             MID%     - Type of line. 1 = Single line. 2 = Double line.
  386.                        Accepts an INTEGER number or variable.
  387.             EFG%     - Foreground color of the ends (see color table).
  388.                        Accepts an INTEGER number or variable.
  389.             EBG%     - Background color of the ends (see color table).
  390.                        Accepts an INTEGER number or variable.
  391.             MFG%     - Foreground color of the line (see color table).
  392.                        Accepts an INTEGER number or variable.
  393.             MBG%     - Background color of the line (see color table).
  394.                        Accepts an INTEGER number or variable.
  395. DESCRIPTION: Draws either a vertical or horizontal line at the specified
  396.              location. 
  397.  
  398.  
  399. DOORFRAME v2.6 - Users Guide - Page 6
  400.  
  401. SUBROUTINE: MAKE.BLT HI.SCORE&
  402. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  403. DESCRIPTION: This routine will write a hi-score bulletin listing the top ten
  404.              scores. The parameter passed must be a LONG INTEGER (&). This
  405.              routine creates a file called FILENAME.BUL (where FILENAME is
  406.              the same as specified in the EXENAME$ variable). The first line
  407.              of this .BUL file indicates the path to the actual BLT file. It
  408.              initially writes FILENAME.BLT. If you wish to have a different
  409.              filename (such as BLT1) you must edit this line. The filename
  410.              for your BLT file should be 7 characters or less because
  411.              DoorFrame also writes a graphics BLT and appends a G to the
  412.              filename. (You should also explain this to your user Sysops!)
  413.  
  414. SUBROUTINE: MAKE.BLT.CURRENT HI.SCORE&
  415. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  416. DESCRIPTION: Same as MAKE.BLT except it posts CURRENT scores rather than
  417.              highest scores.
  418.  
  419.  
  420. SUBROUTINE: MORE
  421. PARAMETERS: None
  422. DESCRIPTION: Outputs "Press <ENTER> to continue, or <E> to end" and waits
  423.              for a response. Check the variable RESPONSE$ for an "E" and
  424.              terminate the current routine if found. For example:
  425.                 MORE
  426.                 IF UCASE$(RESPONSE$) = "E" THEN
  427.                   Etc.. Etc.
  428.  
  429. SUBROUTINE: MUSIC TUNE$
  430. PARAMETERS: MUSIC CODES
  431. DESCRIPTION: Outputs music to the remote system. The TUNE$ parameter
  432.              contains the same codes you would normally use in the BASIC
  433.              PLAY statement. For example:
  434.               TUNE$ = "t110 l8 ms d4 mn o3 g a b o4 c ... "
  435.               MUSIC TUNE$
  436.              Since not all communications programs can handle music, you
  437.              should ask the user if he has music capabilities. If the
  438.              user can't handle music he will simply see the music codes
  439.              come across his screen (not a pretty sight!).
  440.  
  441.  
  442. SUBROUTINE: OUT.PUT LF%
  443. PARAMETERS: LF%, 1, 2, Etc.
  444. DESCRIPTION: Outputs the specified number of CR/LF. Parameter is an INTEGER
  445.              number or an INTEGER variable. Ex: OUT.PUT 2
  446.  
  447.  
  448.  
  449. DOORFRAME v2.6 - Users Guide - Page 7
  450.  
  451. SUBROUTINE: SEND FILENAME$, YN%, CLR%
  452. PARAMETERS: FILENAME$ - STRING variable or quoted text of file to SEND.
  453.             YN%       - 0 = Do not use the ENTER prompt after last page.
  454.                         1 = Use the ENTER prompt after last page.
  455.             CLR%      - 0 = Home cursor, do not clear screen.
  456.                         1 = Normal clear screen.
  457. DESCRIPTION: Sends the specified filename. This can be either an ASCII file
  458.              or an ANSI file. SEND first checks for the existance of the file
  459.              and either sends the file or reports "File not Found!". This is
  460.              handy for displaying Help files, Welcome screens, etc.
  461.        NOTE: When using The Draw to create ANSI screens, save the screen using
  462.              the block mode (ALT-B) as this seems to produce better results
  463.              than using the regular save function (ALT-S).
  464.  
  465.  
  466. SUBROUTINE: SENDANSI FILENAME$, YN%
  467. PARAMETERS: FILENAME$ - STRING variable or quoted text of file to send.
  468.             YN%       - 0 = Do not use the ENTER prompt after last page.
  469.                         1 = Use the ENTER prompt after last page.
  470.                         2 = Pause at end for Spacebar. Doesn't print anything
  471. DESCRIPTION: Sends the specified ANSI file if it exists. This routine does
  472.              not stop until the entire file has been sent. Pressing the
  473.              Spacebar during display aborts the file.
  474.  
  475.  
  476. SUBROUTINE: SHOW.BLT YN$
  477. PARAMETERS: YN$, "Y", "N"
  478. DESCRIPTION: Call this routine if your Door features a Hi-score bulletin. Make
  479.              sure you have called MAKE.BLT first! Best place to call this
  480.              is just before you call EXIT.DOOR. For example:
  481.                MAKE.BLT HI.SCORE&
  482.                SHOW.BLT "Y"
  483.                EXIT.DOOR "Y"
  484.              SHOW.BLT "Y" will ask if they want to see the Bulletin.
  485.              SHOW.BLT "N" displays the bulletin without asking.
  486.  
  487.  
  488. DOORFRAME v2.6 - Users Guide - Page 8
  489.  
  490.  
  491.                              C O L O R  T A B L E
  492.                             ======================
  493.  
  494. COLOR # - NAME       INTENSITY       FOREGROUND (FG%)     BACKGROUND (BG%)
  495. ---------------------------------------------------------------------
  496.  0 - BLACK              Low               X                   X
  497.  1 - BLUE                "                X                   X
  498.  2 - GREEN               "                X                   X
  499.  3 - CYAN                "                X                   X
  500.  4 - RED                 "                X                   X
  501.  5 - MAGENTA             "                X                   X
  502.  6 - YELLOW              "                X                   X
  503.  7 - WHITE               "                X                   X
  504.  8 - GRAY               High              X
  505.  9 - LBLUE               "                X
  506. 10 - LGREEN              "                X
  507. 11 - LCYAN               "                X
  508. 12 - LRED                "                X
  509. 13 - LMAGENTA            "                X
  510. 14 - LYELLOW             "                X
  511. 15 - LWHITE              "                X
  512.  
  513. The COLORs are defined as CONSTANT in the DFRAMEX.INC file so you may use
  514. either the actual color number, it's name or an INTEGER variable of your own
  515. choosing when CALLing the DIS.PLAY subroutine.
  516.  
  517.  
  518.  
  519. DOORFRAME v2.6 - Users Guide - Page 9
  520.  
  521.  
  522.                               CONFIGURATION FILE
  523.                               ==================
  524.  
  525. The format of the configuration file used by Doors created with DoorFrame is:
  526.  
  527. C:\PCB\PCBOARD.SYS              <- For PCBoard systems using PCBOARD.SYS only
  528. C|\PCB\USERS.SYS                <- For PCBoard systems using USERS.SYS
  529. C:\BBS\CALLINFO.BBS             <- For Wildcat! systems (prior to v3.0)
  530. C:\BBS\CHAIN.TXT                <- For WWIV systems
  531. C:\BBS\GTUSER.BBS               <- For GT Power systems
  532. C:\BBS\USERINFO.DAT             <- For Wildcat! 3.x+ systems.
  533. C:\BBS\DOOR.SYS                 <- For systems that support DOOR.SYS
  534. C:\BBS\DORINFOx.DEF             <- For QBBS/RBBS/RA. Replace x with Node #.
  535. C:\BBS\SFDOORS.DAT              <- For Spitfire systems.
  536. C:\BBS\TRIBBS.SYS               <- For TriBBS systems.
  537. MicroNet                        <- BBS name
  538. Ted                             <- Sysop's first name
  539. Freeman                         <- Sysop's last name
  540.   .                             <- The Configuration file is left open as #1
  541.   .                                so you may add whatever is necessary.
  542.  
  543. NOTE: See Miscellaneous Notes for info on using Environment Variables.
  544.  
  545. NOTE: There are 2 additional lines necessary when using GTUSER.BBS. Since
  546.       this file does not provide the ComPort% and NodeNum% variables, advise
  547.       your Door users to add them to this .CFG file on lines 5 and 6
  548.       respectively. Both variables will default to 1.
  549.  
  550. DOORFRAME v2.6 - Users Guide - Page 10
  551.  
  552.                   VARIABLES AVAILABLE WHEN USING PCBOARD.SYS
  553.                   ==========================================
  554.  
  555.         ALLOWEDBYTES&             Allowed D/L bytes from the PWRD file.
  556.                                   This number is in actual bytes
  557.                                   rather than Kilobytes allowed.
  558.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  559.       * BAUDOPEN$                 Port opening BPS
  560.       * BBSSYS$                   Name of the BBS
  561.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  562.       * CALLERSLOC$               Location of CALLERSx log
  563.         CHATSTATUS$               Chat mode status. "U" or "A"
  564.       * CITY$                     Callers city and state
  565.       * CNAMESLOC$                Location of CNAMES
  566.       * COMPORT%                  COM port number
  567.         CONFREG$                  Conferences registered in
  568.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  569.         DOWNLOADS&                Number of downloads made
  570.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  571.         EXENAME$                  Name of .EXE (Programmer supplied)
  572.         EXPERT$                   Expert mode - "Y" or "N"
  573.         EXPIRE$                   Callers expiration date
  574.       * FIRST$                    Callers first name
  575.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  576.                                   Determines if the caller is ANSI compatible
  577.                                   If your door requires the use of cursor
  578.                                   positioning and GRAPHICS% = 0 then you
  579.                                   should kick him back out of the door.
  580.       * HPHONE$                   Callers home phone number
  581.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  582.         LEVEL&                    Callers security level
  583.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  584.       * LOGONHRS$                 Time caller logged on in HH:MM format
  585.       * LOGONMINS%                Time caller logged on in minutes
  586.         MODE%                     0 = Non-color, -1 = color is on. Default
  587.                                   is the BBS setting. You may force color
  588.                                   by setting this to -1.
  589.       * NAME$                     Callers full name
  590.       * NETWORK%                  1 = BBS is networked, 0 = no network
  591.       * NODENUM%                  Node number
  592.         OWNER$                    Name DoorFrame is registered to (if any).
  593.         PASSWORD$                 Password of caller
  594.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  595.         PAGELEN%                  Callers page length
  596.       * PCBDAT$                   Location of PCBOARD.DAT
  597.       * PCBOARD%                  1 = PCBoard, 0 = non-PCBoard
  598.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  599.         PROGNAME$                 Name of DOOR (Programmer supplied)
  600.         PROTOCOL$                 Caller's default protocol (Z, X, etc.)
  601.         RESPONSE$                 Returned after a CALL to IN.PUT
  602.         SERIAL$                   Your DoorFrame serial #. String variable.
  603.       * SYSLOC$                   Location of system file. This contains the
  604.                                   path/filename of line 1 in the .CFG file.
  605.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  606.       * SYSOPFIRST$               Sysops first name
  607.         SYSOPFLAG$                " ", "N"=Sysop Next, "X"=Exit to DOS
  608.       * SYSOPLAST$                Sysops last name
  609.       * SYSOPNAME$                Sysops first and last names
  610.  
  611.  
  612. DOORFRAME v2.6 - Users Guide - Page 11
  613.  
  614.  
  615.         TIMEADJUST%               Use to adjust the callers remaining time
  616.                                   online. This variable adjusts the ELAPSED
  617.                                   time so if you wish to decrease his time,
  618.                                   give this a positive value.
  619.       * TIMEALWD%                 Minutes caller is allowed
  620.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  621.                                   calculates this so changing it has no effect
  622.       * TIMENOW%                  Current time in minutes (0 - 1440)
  623.       * TIMESON%                  Number of times on system
  624.         TIMEOUT%                  Programmer supplied keyboard timeout.
  625.                                   Defaults to 300 (5 mins) if not specified. 
  626.                                   Has a minimum of 60 seconds. Maximum is 
  627.                                   32,767 since it's an integer.
  628.       * TIMEUSED%                 Time used so far today in minutes
  629.         UPLOADS&                  Number of uploads made
  630.       * USERCOMMENT$              User maintained comment
  631.       * USERSLOC$                 Location of USERS file
  632.       * USERNUM%                  Record number of caller
  633.         VERSION$                  DOOR version # (Programmer supplied)
  634.       * WPHONE$                   Callers work phone number
  635.  
  636. NOTES: Variables marked with '*' are provided for information only.
  637.  
  638.  
  639. DOORFRAME v2.6 - Users Guide - Page 12
  640.  
  641.  
  642.                    VARIABLES AVAILABLE WHEN USING USERS.SYS
  643.                    ========================================
  644.  
  645.         When using USERS.SYS, all variables contained in PCBOARD.SYS may
  646.         be used plus the following additional variables.
  647.  
  648.         DAILYDNLDBYTES&          Bytes downloaded so far today.
  649.         DELETEFLAG%              1 = delete this record, 0 = keep
  650.         EXPIREDLEVEL&            Expired Security level
  651.         LASTCONF%                Conference number last in.
  652.         LASTTIMEON$              Last time caller was on
  653.         MSGS.LEFT%               Number of messages posted
  654.         MSGS.READ%               Number of messages read
  655.         PCB.VERSION%             PCBoard version number (i.e. 1450)
  656.         TOTDNLDBYTES&            Total number of BYTES downloaded
  657.         TOTUPLDBYTES&            Total number of BYTES uploaded
  658.  
  659. NOTES: These variables are all passed back to PCBoard.
  660.  
  661.  
  662. DOORFRAME v2.6 - Users Guide - Page 13
  663.  
  664.                     VARIABLES AVAILABLE WHEN USING DOOR.SYS
  665.                     =======================================
  666.  
  667.     !   ALIAS$                    Callers alias/handle
  668.     ! * ANSISUPPORT$              Caller supports ANSI but in NG mode
  669.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  670.       * BAUDOPEN$                 Port opening BPS
  671.     ! * BBSCOLOR%                 BBS default color code (1-15)
  672.       * BBSSYS$                   Name of the BBS
  673.         BIRTHDATE$                Callers date of birth
  674.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  675.       * CITY$                     Callers city and state
  676.       * COMPORT%                  COM port number (0 - 15).
  677.         CONFREG$                  Conferences registered in
  678.         DAILY.BYTES.ALWD&         Daily download max. K limit
  679.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  680.     !   DOORS.OPENED%             Number of Doors caller has opened
  681.         DOWNLOADS&                Number of downloads made
  682.     ! * ECC%                      Error corrected connect.  1=YES, 0=NO
  683.         EXENAME$                  Name of .EXE (Programmer supplied)
  684.         EXFROM%                   Conference exited to Door from.
  685.         EXPERT$                   Expert mode - "Y" or "N"
  686.         EXPIRE$                   Callers expiration date
  687.     ! * EVENT$                    Event time (hh:mm)
  688.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  689.                                   Determines if the caller is ANSI compatible
  690.                                   If your door requires the use of cursor
  691.                                   positioning and GRAPHICS% = 0 then you
  692.                                   should kick him back out of the door.
  693.       * HPHONE$                   Callers home phone number
  694.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  695.     !   LASTSCAN$                 Date of last directory/new files scan.
  696.         LEVEL&                    Callers security level
  697.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  698.       * LOGONHRS$                 Time caller logged on in HH:MM format
  699.       * LOGONMINS%                Time caller logged on in minutes
  700.     !   MAX.FILES%                Maximum daily files available
  701.     !   MINSCREDIT%               Time credits in minutes
  702.         MODE%                     0 = Non-color, -1 = color is on. Default
  703.                                   is the BBS setting. You may force color
  704.                                   by setting this to -1.
  705.     !   MSGS.LEFT%                Total messages left
  706.       * NAME$                     Callers full name
  707.     ! * NETWORK%                  1 = BBS is networked, 0 = no network
  708.       * NODENUM%                  Node number
  709.         DLTODAY&                  Files downloaded so far today
  710.         OWNER$                    Name DoorFrame is registered to (if any).
  711.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  712.         PAGELEN%                  Callers page length
  713.       * PARITY%                   Parity (word length?) (7 or 8)
  714.         PASSWORD$                 Password of caller
  715.       * PATHGEN$                  Path to the GEN directory
  716.       * PATHMAIN$                 Path to the MAIN directory
  717.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  718.         PROGNAME$                 Name of DOOR (Programmer supplied)
  719.         PROTOCOL$                 Callers default protocol (Z, X, etc)
  720.         RESPONSE$                 Returned after a CALL to IN.PUT
  721.  
  722.  
  723. DOORFRAME v2.6 - Users Guide - Page 14
  724.  
  725.  
  726.         SECREM$                   Number of seconds remaining this call.
  727.         SERIAL$                   Your DoorFrame serial #. String variable.
  728.       * SYSLOC$                   Location of system file. This contains the
  729.                                   path/filename of line 1 in the .CFG file.
  730.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  731.       * SYSOPFIRST$               Sysops first name
  732.       * SYSOPLAST$                Sysops last name
  733.       * SYSOPNAME$                Sysops first and last names
  734.         TIMEADJUST%               Use to adjust the callers remaining time
  735.                                   online. This variable adjusts the ELAPSED
  736.                                   time so if you wish to decrease his time,
  737.                                   give this a positive value.
  738.     ! * TIMELASTCALL$             Time of last call (hh:mm)
  739.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  740.                                   calculates this so changing it has no effect
  741.       * TIMENOW%                  Current time in minutes (0 - 1440)
  742.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  743.                                   not specified. Has a minimum of one min.
  744.                                   No limit on maximum. 
  745.       * TIMESON%                  Number of times on system
  746.       * TIMEUSED%                 Time used so far today in minutes
  747.         TOTAL.BYTES.TODAY&        Daily download K total
  748.     !   TOTAL.KB.DL&              Total K bytes downloaded
  749.     !   TOTAL.KB.UL&              Total K bytes uploaded
  750.         UPLOADS&                  Number of uploads made
  751.       * USERCOMMENT$              User maintained comment
  752.       * USERNUM%                  Record number of caller
  753.         VERSION$                  DOOR version # (Programmer supplied)
  754.       * WPHONE$                   Callers work phone number
  755. NOTES: Variables marked with '*' are provided for information only.
  756.        Varialbes marked with '!' are available only in the 52 line version.
  757.  
  758.  
  759. DOORFRAME v2.6 - Users Guide - Page 15
  760.  
  761.                   VARIABLES AVAILABLE WHEN USING USERINFO.DAT
  762.                   ===========================================
  763.  
  764.       * ACTIVE.MENU%              0=Main, 1=Msg, 2=File, 3=Sysop
  765.         ALIAS$                    Callers alias/handle
  766.       * ANSISUPPORT$              'Y' or 'N' for ANSI enabled.
  767.         BANKED.TIME%              Banked time. (DLT - MaxLogOn)
  768.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  769.       * COMMAND.LINE$             Started with a CommandLine switch. Y or N.
  770.       * DATABITS$                 Databits, 7 or 8.
  771.       * DOOR.LOGOFF$              Y or N. Set to Y if caller logged off from
  772.                                   inside the door.
  773.         DOOR.DL&                  Number of files DL'ed in the door.
  774.         DOOR.KB&                  Downloads in K, add to daily and total bytes
  775.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  776.         LASTSCAN$                 Time/date of last new files scan
  777.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  778.       * NAME$                     Callers full name
  779.         SEC.LEVEL.NAME$           Security level name.
  780. NOTES: Variables marked with '*' are provided for information only.
  781.        All other variables are taken from the DOOR.SYS file.
  782.  
  783.                   VARIABLES AVAILABLE WHEN USING DORINFOx.DEF
  784.                   ===========================================
  785.  
  786.       * BAUDRATE$                 Baud rate and parity of caller.
  787.                                   Ex. 2400 BAUD,N,8,1
  788.                                   NOTE: RBBS adds baud rate of BBS.
  789.       * BBSSYS$                   Name of the BBS
  790.       * CITY$                     Callers city and state
  791.       * COMPORT%                  COM port number (0 - 15).
  792.         DISPLAY%                  Defaults to -1 (ON).
  793.       * DORINFO13TH$              13th line available only on RBBS systems.
  794.         EXENAME$                  Name of .EXE (Programmer supplied)
  795.       * FIRST$                    Callers first name
  796.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  797.                                   Determines if the caller is ANSI compatible
  798.                                   If your door requires the use of cursor
  799.                                   positioning and GRAPHICS% = 0 then you
  800.                                   should kick him back out of the door.
  801.                                   Use DETECT.ANSI to determine this.
  802.       * LAST$                     Callers last name
  803.       * LASTON$                   Default 01-01-80 (not provided in DORINFO)
  804.         LEVEL&                    Callers security level
  805.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  806.         MODE%                     0 = Non-color, -1 = color is on. Default
  807.                                   is the BBS setting. You may force color
  808.                                   by setting this to -1.
  809.       * NAME$                     Callers full name
  810.         NETWORK$                  Network type. DoorFrame reads/writes as is.
  811.       * NODENUM%                  Number of this Node.
  812.         OWNER$                    Name DoorFrame is registered to (if any).
  813.         PROGNAME$                 Name of DOOR (Programmer supplied)
  814.         RESPONSE$                 Returned after a CALL to IN.PUT
  815.         SERIAL$                   Your DoorFrame serial #. String variable.
  816.       * SYSLOC$                   Location of system file. This contains the
  817.                                   path/filename of line 1 in the .CFG file.
  818.  
  819.  
  820. DOORFRAME v2.6 - Users Guide - Page 16
  821.  
  822.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  823.       * SYSOPFIRST$               Sysops first name
  824.       * SYSOPLAST$                Sysops last name
  825.       * SYSOPNAME$                Sysops first and last names
  826.         TIMEADJUST%               Use to adjust the callers remaining time
  827.                                   online. This variable adjusts the ELAPSED
  828.                                   time so if you wish to decrease his time,
  829.                                   give this a positive value.
  830.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  831.                                   calculates this so changing it has no effect
  832.       * TIMENOW%                  Current time in minutes (0 - 1440)
  833.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  834.                                   not specified. Has a minimum of one min.
  835.                                   No limit on maximum. 
  836.       * TIMESON%                  Defaults to 1 (Not provided in DORINFO)
  837.       * TIMEUSED%                 Time used so far today in minutes
  838.  
  839. NOTES: Variables marked with '*' are provided for information only.
  840.  
  841.  
  842.                   VARIABLES AVAILABLE WHEN USING CALLINFO.BBS
  843.                   ===========================================
  844.  
  845.       * ALREADYCONNECTED$         "TRUE" or "FALSE"
  846.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  847.       * BBSSYS$                   Name of the BBS
  848.       * CITY$                     Callers city and state
  849.       * COMPORT%                  COM port number (0 - 15).
  850.         CONFREG$                  Conferences registered in (ABCD etc.)
  851.       * CONSOLE$                  "LOCAL" or "REMOTE"
  852.         DAILY.BYTES.ALWD&         Daily download max. K limit
  853.       * DATABITS$                 7 or 8
  854.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  855.       * DOORNUMBER$               BBS number of this door?
  856.         EXENAME$                  Name of .EXE (Programmer supplied)
  857.       * ENTERDOOR$                Time caller entered door in HH:MM format.
  858.       * FIRST$                    Callers first name
  859.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  860.                                   Determines if the caller is ANSI compatible
  861.                                   If your door requires the use of cursor
  862.                                   positioning and GRAPHICS% = 0 then you
  863.                                   should kick him back out of the door.
  864.                                   Use DETECT.ANSI to determine this.
  865.       * LAST$                     Callers last name
  866.         LASTMSG$                  Last message read
  867.       * LASTONDATE$               Date and time of last call
  868.         LEVEL&                    Callers security level
  869.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  870.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  871.       * LOGONHRS$                 Time caller logged on in HH:MM format
  872.         MODE%                     0 = Non-color, -1 = color is on. Default
  873.                                   is the BBS setting. You may force color
  874.                                   by setting this to -1.
  875.       * MNP$                      "MNP/ARQ Connection" or "Normal Connection"
  876.       * NAME$                     Callers full name
  877.         DLTODAY&                  Files downloaded so far today
  878.  
  879.  
  880. DOORFRAME v2.6 - Users Guide - Page 17
  881.  
  882.         OWNER$                    Name DoorFrame is registered to (if any).
  883.         PASSWORD$                 Password of caller
  884.         PROGNAME$                 Name of DOOR (Programmer supplied)
  885.         RESPONSE$                 Returned after a CALL to IN.PUT
  886.         SERIAL$                   Your DoorFrame serial #. String variable.
  887.       * SYSLOC$                   Location of system file. This contains the
  888.                                   path/filename of line 1 in the .CFG file.
  889.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  890.       * SYSOPFIRST$               Sysops first name
  891.       * SYSOPLAST$                Sysops last name
  892.       * SYSOPNAME$                Sysops first and last names
  893.         TIMEADJUST%               Use to adjust the callers remaining time
  894.                                   online. This variable adjusts the ELAPSED
  895.                                   time so if you wish to decrease his time,
  896.                                   give this a positive value.
  897.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  898.                                   calculates this so changing it has no effect
  899.       * TIMENOW%                  Current time in minutes (0 - 1440)
  900.       * TIMEOFF$                  Time caller exited from the door.
  901.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  902.                                   not specified. Has a minimum of one min.
  903.                                   No limit on maximum. 
  904.       * TIMEUSED%                 Time used so far today in minutes
  905.       * USERNUM%                  Record number of caller
  906.  
  907. NOTES: Variables marked with '*' are provided for information only.
  908.  
  909.  
  910. DOORFRAME v2.6 - Users Guide - Page 18
  911.  
  912.                   VARIABLES AVAILABLE WHEN USING SFDOORS.DAT
  913.                   ==========================================
  914.  
  915.         ANSION$                   "TRUE" or "FALSE"
  916.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  917.       * BBSDIR$                   Spitfire's home directory
  918.       * BBSSYS$                   Name of the BBS
  919.       * CITY$                     Callers city and state
  920.       * COMPORT%                  COM port number (0 - 15).
  921.         DAILY.BYTES.ALLOWED&      Maximum download BYTES per day
  922.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  923.         DLPERDAY&                 Number of downloads allowed per day
  924.         DLTODAY&                  Number of downloads made today
  925.         DOWNLOADS&                Number of downloads made
  926.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  927.         EXENAME$                  Name of .EXE (Programmer supplied)
  928.         EXTRATIME&                Number of seconds gained since logon
  929.       * FIRST$                    Callers first name
  930.       * FRONTEND$                 "TRUE" or "FALSE" if booted from a
  931.                                   front end program.
  932.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  933.                                   Determines if the caller is ANSI compatible
  934.                                   If your door requires the use of cursor
  935.                                   positioning and GRAPHICS% = 0 then you
  936.                                   should kick him back out of the door.
  937.                                   Use DETECT.ANSI to determine this.
  938.       * HPHONE$                   Callers home phone number
  939.       * LAST$                     Callers last name
  940.         LASTMCONF$                Last message conference
  941.         LASTFAREA$                Last file area
  942.         LEVEL&                    Callers security level
  943.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  944.       * LOGONHRS$                 Time caller logged on in HH:MM format
  945.       * LOGONSECS&                Number of seconds since midnight
  946.                                   when caller logged on to the BBS.
  947.       * MAXBAUD$                  Maximum baud of the system
  948.         MODE%                     0 = Non-color, -1 = color is on. Default
  949.                                   is the BBS setting. You may force color
  950.                                   by setting this to -1.
  951.       * NAME$                     Callers full name
  952.       * NODENUM%                  Number of this Node.
  953.       * NODTELOCK$                "TRUE" or "FALSE" if configured for
  954.                                   software data flow control.
  955.         OWNER$                    Name DoorFrame is registered to (if any).
  956.         PASSWORD$                 Password of caller
  957.         PROGNAME$                 Name of DOOR (Programmer supplied)
  958.         RESPONSE$                 Returned after a CALL to IN.PUT
  959.       * SECONDS&                  Number of seconds since midnight
  960.                                   when caller entered the door.
  961.         SERIAL$                   Your DoorFrame serial #. String variable.
  962.       * SYSLOC$                   Location of system file. This contains the
  963.                                   path/filename of line 1 in the .CFG file.
  964.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  965.       * SYSOPFIRST$               Sysops first name
  966.  
  967. NOTES: Variables marked with '*' are provided for information only.
  968.  
  969.  
  970. DOORFRAME v2.6 - Users Guide - Page 19
  971.  
  972.       * SYSOPLAST$                Sysops last name
  973.       * SYSOPNAME$                Sysops first and last names
  974.         SYSOPNEXT$                "TRUE" or "FALSE"
  975.         TIMEADJUST%               Use to adjust the callers remaining time
  976.                                   online. This variable adjusts the ELAPSED
  977.                                   time so if you wish to decrease his time,
  978.                                   give this a positive value.
  979.       * TIMEALWD%                 Minutes caller is allowed
  980.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  981.                                   calculates this so changing it has no effect
  982.       * TIMENOW%                  Current time in minutes (0 - 1440)
  983.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  984.                                   not specified. Has a minimum of one min.
  985.                                   No limit on maximum. 
  986.       * TIMEUSED%                 Time used so far today in minutes
  987.  
  988.         TOTAL.BYTES.TODAY&        BYTES downloaded so far today
  989.         TOTAL.KB.DL&              Total K bytes downloaded
  990.         TOTAL.KB.UL&              Total K bytes uploaded
  991.         UPLOADS&                  Number of uploads made
  992.       * USERNUM%                  Record number of caller
  993.  
  994. NOTES: Variables marked with '*' are provided for information only.
  995.  
  996. DOORFRAME v2.6 - Users Guide - Page 20
  997.  
  998.                    VARIABLES AVAILABLE WHEN USING CHAIN.TXT
  999.                    ========================================
  1000.         AGE$                      Caller's age
  1001.         ALIAS$                    Callers alias/handle
  1002.       * BBSSYS$                   Name of the BBS
  1003.       * CALLSIGN$                 HAM radio call sign
  1004.         COLUMNS$                  Caller's screen width
  1005.       * COMPORT%                  COM port number (0 - 15).
  1006.         COSYSOP%                  1 if Caller is co-Sysop, 0 if not
  1007.       * DATADIR$                  System DATA directory
  1008.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  1009.         DOWNLOADS&                Number of downloads made
  1010.         EXENAME$                  Name of .EXE (Programmer supplied)
  1011.       * FIRST$                    Callers first name
  1012.       * GFILESDIR$                System GFILES directory
  1013.         GOLD$                     Caller's gold (?)
  1014.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  1015.                                   Determines if the caller is ANSI compatible
  1016.                                   Use DETECT.ANSI to determine this.
  1017.       * LAST$                     Callers last name
  1018.       * LASTON$                   Date caller last logged on (MM/DD/YY)
  1019.         LEVEL&                    Callers security level
  1020.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  1021.       * LOG$                      System LOG of the day
  1022.       * LOGONSECS&                Number of seconds since midnight
  1023.                                   when caller logged on to the BBS.
  1024.         MODE%                     0 = Non-color, -1 = color is on. Line 14
  1025.                                   of CHAIN.TXT determines this setting.
  1026.       * NAME$                     Callers full name
  1027.       * NODENUM%                  Defaults to 1 (not provided in CHAIN.TXT)
  1028.         OWNER$                    Name DoorFrame is registered to (if any).
  1029.         PAGELEN%                  Callers page length
  1030.         PARITY$                   "8N1" etc.
  1031.         PROGNAME$                 Name of DOOR (Programmer supplied)
  1032.         RESPONSE$                 Returned after a CALL to IN.PUT
  1033.         SERIAL$                   Your DoorFrame serial #. String variable.
  1034.         SEX$                      Callers sex
  1035.       * SYSLOC$                   Location of system file. This contains the
  1036.                                   path/filename of line 1 in the .CFG file.
  1037.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  1038.       * SYSOPFIRST$               Sysops first name
  1039.       * SYSOPLAST$                Sysops last name
  1040.       * SYSOPNAME$                Sysops first and last names
  1041.         TIMEADJUST%               Use to adjust the callers remaining time
  1042.                                   online. This variable adjusts the ELAPSED
  1043.                                   time so if you wish to decrease his time,
  1044.                                   give this a positive value.
  1045.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  1046.                                   calculates this so changing it has no effect
  1047.       * TIMENOW%                  Current time in minutes (0 - 1440)
  1048.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  1049.                                   not specified. Minimum 1 min. 
  1050.       * TIMEUSED%                 Time used so far today in minutes
  1051.         TOTAL.KB.DL&              Total K bytes downloaded
  1052.         TOTAL.KB.UL&              Total K bytes uploaded
  1053.         UPLOADS&                  Number of uploads made
  1054.       * USERNUM%                  Record number of caller
  1055. NOTES: Variables marked with '*' are provided for information only.
  1056.  
  1057.  
  1058. DOORFRAME v2.6 - Users Guide - Page 21
  1059.  
  1060.                                 MISCELLANEOUS NOTES
  1061.                                 ===================
  1062.  
  1063. Check DFRAMEX.INC for an explanation of variables not listed above.
  1064.  
  1065. DoorFrame requires DOS 3.x and up since all files are opened in SHARED mode.
  1066.  
  1067. When using PCBOARD.SYS, DoorFrame also accesses the USERS file.
  1068.  
  1069. When using USERS.SYS, DoorFrame also accesses PCBOARD.SYS, PCBOARD.DAT and the 
  1070. USERS file.
  1071.  
  1072. The DOOR.SYS used by DoorFrame is the standard 52 line GAP (tm) file.
  1073.  
  1074. The CALLINFO.BBS used by DoorFrame currently contains 36 lines.
  1075.  
  1076. Trapping errors
  1077. ---------------
  1078.  If you wish to utilize the internal error trapping, insert the following
  1079.  line wherever you wish the trapping to begin. I would suggest putting it
  1080.  right after you call INITIALIZE.
  1081.  
  1082.    ON ERROR GOTO ERR.ROUTINE
  1083.  
  1084.  Then at the very end of your program insert the following:
  1085.  
  1086.    ERR.ROUTINE:
  1087.    ERRORS ERR, ERL
  1088.    END
  1089.  
  1090.  If ANY Basic error is encountered, it will branch to ERR.ROUTINE and call
  1091.  the ERRORS subroutine. The error will be printed to the screen and written
  1092.  to DFRAME.ERR. Your Door will then exit back to the BBS.
  1093. The first few lines of your Door should be:
  1094.  
  1095.    ' $INCLUDE: 'DFRAMEX.INC'
  1096.    PROGNAME$ = "Name of the Door"
  1097.    VERSION$ = " v1.0"
  1098.    EXENAME$ = "FILENAM"           <- NOTE: Max of 7 letters!
  1099.    TIMEOUT% = 240                 <- Numbers of seconds to wait for keyboard
  1100.                                      activity. 240 will wait for 4 minutes
  1101.                                      then send a Keyboard Timeout msg. and
  1102.                                      exit back to the BBS. Defaults to 300.
  1103.    OWNER$ = "Your Name"           <- For registered DoorFrame users only.
  1104.    SERIAL$ = "99999"              <- DoorFrame will display an EVALUATION
  1105.                                      COPY message until registered.
  1106.    INITIALIZE
  1107.    .
  1108.    Your code.......
  1109.    .
  1110.    MAKE.BLT HI.SCORE&            <- If you want one generated.
  1111.    SHOW.BLT "Y"                  <- If you want to show it before door closes.
  1112.    EXIT.DOOR "Y"
  1113. The configuration filename passed on the command line is OPENed as #1. This
  1114. file is left open so you may read additional lines from the .CFG file. 
  1115. Although it is not absolutely necessary, you should CLOSE #1 somewhere near
  1116. the start of your program.
  1117.  
  1118.  
  1119. DOORFRAME v2.6 - Users Guide - Page 22
  1120.  
  1121. Using SysopKeys%
  1122. ----------------
  1123. By setting SysopKeys% = 1 (after calling INITIALIZE), you can utilize the
  1124. arrow keys for remote input. This could be used for moving highlight bars
  1125. etc. (see the DFDEMO for an example).  Using the arrow keys from remote can
  1126. present difficulties because the terminal program the caller is using may
  1127. have redefined the arrow keys. Qmodem is a good example. Normally the up
  1128. arrow in Qmodem activates the scroll back buffer. However, if you switch
  1129. Qmodem into DoorWay mode (ALT =), the arrow keys can be used. I do not know
  1130. if this is possible with other terminals (feedback anyone?).  If you do
  1131. utilize the arrow keys, you would be wise to provide an alternative method
  1132. of input for those callers who cannot use their arrow keys.
  1133.  
  1134. In addition, set Sysopkeys% = 1 only when arrow input is required then
  1135. immediately set SysopKeys% = 0 since capital H, K, M, and P are also
  1136. interpreted as arrow keys when SysopKeys% = 1.
  1137.  
  1138. Turning off the Status lines.
  1139. -----------------------------
  1140. If for some reason you do not want the 2 Status lines at the bottom of the
  1141. screen to show, you may blank those out at any time with the following.
  1142.  
  1143.  No.Status% = 1
  1144.  ClrScrn Black
  1145.  
  1146. To turn the Status lines back on just set No.Status% = 0.
  1147.  
  1148. Returning control to programmer upon carrier loss
  1149. -------------------------------------------------
  1150. There may be instances where the programmer needs to do some clean-up when
  1151. a loss of carrier occurs before returning to the BBS. There are two variables
  1152. that allow you to do this. After calling INITIALIZE, set Auto.Recycle% = 0.
  1153. If carrier is lost, the variable NoCarrier% is set equal to 1. One way to 
  1154. handle this is to check NoCarrier% after each In.Put, Enter, or More 
  1155. statement. If NoCarrier% = 1, your door will NOT stop for user input. For
  1156. example:
  1157.  
  1158.    In.Put 0, 0, 11, 0, 1, "Prompt > ", 10, 1, 1
  1159.    IF NoCarrier% = 1 THEN GOTO HandleIt
  1160.  
  1161. If the door was sitting at the In.Put prompt when carrier loss occurred, it
  1162. would immediately come out of it and process the next statement. You must be
  1163. VERY CAREFUL when using this option. Make sure you TEST IT THOROUGHLY!!!
  1164.  
  1165. After you have done your clean-up, be sure to call Exit.Door "Y" to terminate
  1166. the door as you normally would.
  1167.  
  1168. System.File% Variable
  1169. ---------------------
  1170. The value of System.File% will tell you which BBS file is being  used 
  1171. according to the following values:
  1172.  
  1173.         1 = PCBOARD.SYS                    6 = DORINFOx.DEF
  1174.         2 = USERS.SYS                      7 = SFDOORS.DAT                    
  1175.         3 = DOOR.SYS                       8 = USERINFO.DAT
  1176.         4 = CALLINFO.BBS                   9 = GTUSER.BBS
  1177.         5 = CHAIN.TXT                     10 = TRIBBS.SYS
  1178.  
  1179.  
  1180. DOORFRAME v2.6 - Users Guide - Page 23
  1181.  
  1182. Fossil Driver Support
  1183. ---------------------
  1184. DoorFrame supports the use of Fossil drivers.  To tell your Door to use the
  1185. Fossil driver instead of the standard COM ports, just put /FD on the command
  1186. line when running the door. For example:
  1187.      MYDOOR MYDOOR.CFG /FD
  1188. indicates that a Fossil driver is present and should be used. If no Fossil
  1189. driver is detected, DoorFrame will print a message to that effect and exit
  1190. the door gracefully.
  1191.  
  1192. Environment Variables
  1193. ---------------------
  1194. DoorFrame supports COM 1-4 on the standard IRQ's - COM1/COM3 = IRQ4 and
  1195. COM2/COM4 = IRQ3. If you wish to use a non-standard IRQ, add the IRQ
  1196. number after the configuration filename. Let's assume your Door is
  1197. called FOOBAR and you want to use COM1 and IRQ5. The command line
  1198. passed to your Door would be:
  1199.     FOOBAR FOOBAR.CFG /5  or
  1200.     FOOBAR FOOBAR.CFG /%IRQ%  for the environment variable.
  1201. The /5 tells DoorFrame to use IRQ5 rather than the standard IRQ4 that
  1202. is normally used with COM1. No /x parameter is needed for the standard IRQ's.
  1203.  
  1204. When specifying the location of the system file on line 1 of the doors .CFG
  1205. file, you may use the environment variables %pcbdrive%, %pcbdir%, %pcbnode%,
  1206. and %wcnodeid%. Some examples:
  1207.  PCBoard: 
  1208.    USERS.SYS in C:\PCB           - %pcbdrive%%pcbdir%\USERS.SYS
  1209.    USERS.SYS in C:\PCB\NODE1     - %pcbdrive%%pcbdir%\NODE%pcbnode%\USERS.SYS
  1210.  
  1211.  Wildcat!:
  1212.    USERINFO.DAT in C:\WC\NODE1   - C:\WC\NODE%wcnodeid%
  1213.  
  1214. Non-PCBoard systems may use the PCB environment variables by setting them
  1215. in either AUTOEXEC.BAT or in the batch that runs the door. For example:
  1216.  SET PCBDRIVE=C:
  1217.  SET PCBDIR=\BBSDIR
  1218.  SET PCBNODE=1
  1219.  
  1220.